function animate(obj, target, callback) {
    // 当我们不断点击按钮 元素速度会越来越快 因为开启了太多的定时器
    // 所以只让一个定时器执行 先清除之前的定时器 只保留一个定时器
    clearInterval(obj.timer)
    obj.timer = setInterval(function () {
        // 把步长值改为整数 不要出现小数的问题 不然数据会有误差
        // Math.ceil 将数值往大了取整  天花板函数
        var step = ((target - obj.offsetLeft) / 10);
        step = step > 0 ? Math.ceil(step) : Math.floor(step);
        if (obj.offsetLeft == target) {
            // 停止动画的本质 就是停止定时器
            clearInterval(obj.timer)

            // 回调函数写在最后 也就是函数停止的地方
            // if (callback) {//判断有没有回调函数 有才能执行
            //     callback();
            // }
            callback && callback()
        }
        obj.style.left = obj.offsetLeft + step + 'px';
    }, 15)
}

